// 定义store
import {defineStore} from "pinia"
export const Usecart = defineStore('cart',{
    state(){
        return {
            cartData: []
        }
    },
    actions:{
        // 将购物车数据加到商品中
        addcart(i){
            // console.log(i);
            // console.log(this.cartData);
            // 1.先检查cartData有没有传入的这条数据
            let target = this.cartData.find(item => item.id === i.id)
            console.log(target);
            if(!target){
                // 当数组中没有重复的数据时
                let obj ={
                    title:i.title,
                    price:i.price,
                    count:1,
                    id:i.id
                }
                // 添加到数组中
                this.cartData.push(obj)
                console.log(this.cartData)
            }else{
                // 数组中已有该数据，就直接让其数量加1
                target.count++
            }
            // console.log(this.cartData)
        },
        del_cart(current){
            // 找到cartData中的目标删除数据
            let target = this.cartData.find(item => {
                if(item.id===current.id && item.count>0){
                    item.count--
                }
                return item
            })
            console.log(target)
            //  当要删除的数据为0时，将他从cartData中整个删掉
            if(target.count===0){
                this.cartData = this.cartData.filter(item => item.id!==target.id)
                console.log(this.cartData)

                // filter过滤的是不成立的
            }      
        }
    },
    getters:{
        // 总价计算
        total(state){
            return (state.cartData.reduce((total, item) => {
                return total += item.price * item.count
            }, 0)).toFixed(2)
        }
    }
    

})